<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Catalog of coefficient-wise math functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__CoeffwiseMathFunctions.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Catalog of coefficient-wise math functions<div class="ingroups"><a class="el" href="group__DenseMatrixManipulation__chapter.html">Dense matrix and array manipulation</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>This table presents a catalog of the coefficient-wise math functions supported by Eigen. In this table, <code>a</code>, <code>b</code>, refer to <a class="el" href="classEigen_1_1Array.html" title="General-purpose arrays with easy API for coefficient-wise operations.">Array</a> objects or expressions, and <code>m</code> refers to a linear algebra Matrix/Vector object. Standard scalar types are abbreviated as follows:</p><ul>
<li><code>int:</code> <code>i32</code> </li>
<li><code>float:</code> <code>f</code> </li>
<li><code>double:</code> <code>d</code> </li>
<li><code>std::complex&lt;float&gt;</code>: <code>cf</code> </li>
<li><code>std::complex&lt;double&gt;</code>: <code>cd</code> </li>
</ul>
<p>For each row, the first column list the equivalent calls for arrays, and matrices when supported. Of course, all functions are available for matrices by first casting it as an array: <code>m.array()</code>.</p>
<p>The third column gives some hints in the underlying scalar implementation. In most cases, Eigen does not implement itself the math function but relies on the STL for standard scalar types, or user-provided functions for custom scalar types. For instance, some simply calls the respective function of the STL while preserving <a href="http://en.cppreference.com/w/cpp/language/adl">argument-dependent lookup</a> for custom types. The following: </p><div class="fragment"><div class="line"><span class="keyword">using</span> std::foo;</div>
<div class="line">foo(a[i]);</div>
</div><!-- fragment --><p> means that the STL's function <code>std::foo</code> will be potentially called if it is compatible with the underlying scalar type. If not, then the user must ensure that an overload of the function foo is available for the given scalar type (usually defined in the same namespace as the given scalar type). This also means that, unless specified, if the function <code>std::foo</code> is available only in some recent c++ versions (e.g., c++11), then the respective Eigen's function/method will be usable on standard types only if the compiler support the required c++ version.</p>
<table class="manual-hl">
<tr>
<th>API</th><th>Description</th><th>Default scalar implementation</th><th>SIMD  </th></tr>
<tr>
<td colspan="4"></td></tr>
<tr>
<th colspan="4">Basic operations </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_abs"></a> a.<a class="el" href="">abs</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae27242789e7e62a8c42579b79be59b1a">abs</a>(a); <br  />
 m.<a class="el" href="">cwiseAbs</a>();  </td><td>absolute value ( \( |a_i| \))  </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/fabs">std::abs</a>; <br  />
 abs(a[i]);  </td><td>SSE2, AVX (i32,f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_inverse"></a> a.<a class="el" href="">inverse</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae9de9064c3b832ee804c0e0957e80334">inverse</a>(a); <br  />
 m.<a class="el" href="">cwiseInverse</a>();  </td><td>inverse value ( \( 1/a_i \))  </td><td class="code">1/a[i];  </td><td>All engines (f,d,fc,fd)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_conj"></a> a.<a class="el" href="">conjugate</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ab84f39a06a18e1ebb23f8be80345b79d">conj</a>(a); <br  />
 m.<a class="el" href="">conjugate</a>();  </td><td><a href="https://en.wikipedia.org/wiki/Complex_conjugate">complex conjugate</a> ( \( \bar{a_i} \)),<br  />
 no-op for real  </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/complex/conj">std::conj</a>; <br  />
 conj(a[i]);  </td><td>All engines (fc,fd)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_arg"></a> a.<a class="el" href="">arg</a>(); <br  />
 <a class="el" href="namespaceEigen.html#aa539408a09481d35961e11ee78793db1">arg</a>(a); <br  />
 m.<a class="el" href="">cwiseArg</a>();  </td><td>phase angle of complex number </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/complex/arg">std::arg</a>; <br  />
 arg(a[i]);  </td><td>All engines (fc,fd)  </td></tr>
<tr>
<th colspan="4">Exponential functions  </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_exp"></a> a.<a class="el" href="">exp</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae491aecf7dab66ac7e11008c5766694d">exp</a>(a);  </td><td>\( e \) raised to the given power ( \( e^{a_i} \))  </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/exp">std::exp</a>; <br  />
 exp(a[i]);  </td><td>SSE2, AVX (f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_log"></a> a.<a class="el" href="">log</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae8bb75ba4f5f30a7571146dbfa653c6d">log</a>(a);  </td><td>natural (base \( e \)) logarithm ( \( \ln({a_i}) \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/log">std::log</a>; <br  />
 log(a[i]);  </td><td>SSE2, AVX (f)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_log1p"></a> a.<a class="el" href="">log1p</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ac5c8a2cded6b59628f2de04f24d2fff4">log1p</a>(a);  </td><td>natural (base \( e \)) logarithm of 1 plus <br  />
 the given number ( \( \ln({1+a_i}) \)) </td><td>built-in generic implementation based on <code>log</code>,<br  />
 plus <code>using</code> <a href="http://en.cppreference.com/w/cpp/numeric/math/log1p"><code>std::log1p</code> </a>; <span class="cpp11">[c++11]</span> </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_log10"></a> a.<a class="el" href="">log10</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a25256faeec3ffd0f3615a0e1e45dfb14">log10</a>(a);  </td><td>base 10 logarithm ( \( \log_{10}({a_i}) \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/log10">std::log10</a>; <br  />
 log10(a[i]);  </td><td></td></tr>
<tr>
<th colspan="4">Power functions  </th></tr>
<tr>
<td class="code"><p class="starttd"><a class="anchor" id="cwisetable_pow"></a> a.<a class="el" href="classEigen_1_1ArrayBase.html#a5df3d99d47747b72d61f235c9fb925e3">pow</a>(b); <br  />
 <a class="el" href="classEigen_1_1ArrayBase.html#acb769e1ab1d809abb77c7ab98021ad81">pow</a>(a,b); </p>
<p class="endtd"></p>
</td><td>raises a number to the given power ( \( a_i ^ {b_i} \)) <br  />
 <code>a</code> and <code>b</code> can be either an array or scalar. </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/pow">std::pow</a>; <br  />
 pow(a[i],b[i]);<br  />
 (plus builtin for integer types) </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_sqrt"></a> a.<a class="el" href="">sqrt</a>(); <br  />
 <a class="el" href="namespaceEigen.html#af4f536e8ea56702e63088efb3706d1f0">sqrt</a>(a);<br  />
 m.<a class="el" href="">cwiseSqrt</a>();  </td><td>computes square root ( \( \sqrt a_i \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt">std::sqrt</a>; <br  />
 sqrt(a[i]); </td><td>SSE2, AVX (f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_rsqrt"></a> a.<a class="el" href="">rsqrt</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a6374a6a9e972e9358d7ab3fced32d7d5">rsqrt</a>(a);  </td><td><a href="https://en.wikipedia.org/wiki/Fast_inverse_square_root">reciprocal square root</a> ( \( 1/{\sqrt a_i} \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt">std::sqrt</a>; <br  />
 1/sqrt(a[i]); <br  />
  </td><td>SSE2, AVX, AltiVec, ZVector (f,d)<br  />
 (approx + 1 Newton iteration)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_square"></a> a.<a class="el" href="">square</a>(); <br  />
 <a class="el" href="namespaceEigen.html#af28ef8cae3b37bcf1b47910cd6f20d4c">square</a>(a);  </td><td>computes square power ( \( a_i^2 \)) </td><td class="code">a[i]*a[i] </td><td>All (i32,f,d,cf,cd)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_cube"></a> a.<a class="el" href="">cube</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae04fac7e3068f05c3f01982554a21d80">cube</a>(a);  </td><td>computes cubic power ( \( a_i^3 \)) </td><td class="code">a[i]*a[i]*a[i] </td><td>All (i32,f,d,cf,cd)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_abs2"></a> a.<a class="el" href="">abs2</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a54cc34b64b4935307efc06d56cd531df">abs2</a>(a);<br  />
 m.<a class="el" href="">cwiseAbs2</a>();  </td><td>computes the squared absolute value ( \( |a_i|^2 \)) </td><td class="code">real: a[i]*a[i] <br  />
 complex: real(a[i])*real(a[i]) <br  />
 &#160;&#160;&#160;&#160;&#160;&#160; + imag(a[i])*imag(a[i]) </td><td>All (i32,f,d)  </td></tr>
<tr>
<th colspan="4">Trigonometric functions  </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_sin"></a> a.<a class="el" href="">sin</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ae6e8ad270ff41c088d7651567594f796">sin</a>(a);  </td><td>computes sine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/sin">std::sin</a>; <br  />
 sin(a[i]); </td><td>SSE2, AVX (f)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_cos"></a> a.<a class="el" href="">cos</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ad01d50a42869218f1d54af13f71517a6">cos</a>(a);  </td><td>computes cosine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/cos">std::cos</a>; <br  />
 cos(a[i]); </td><td>SSE2, AVX (f)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_tan"></a> a.<a class="el" href="">tan</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a3bc116a6243f38c22f851581aa7b521a">tan</a>(a);  </td><td>computes tangent </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/tan">std::tan</a>; <br  />
 tan(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_asin"></a> a.<a class="el" href="">asin</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a6c5c246b877ac331495d21e7a5d51616">asin</a>(a);  </td><td>computes arc sine ( \( \sin^{-1} a_i \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/asin">std::asin</a>; <br  />
 asin(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_acos"></a> a.<a class="el" href="">acos</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a3fe3a136370fefae062591304c6a7ebd">acos</a>(a);  </td><td>computes arc cosine ( \( \cos^{-1} a_i \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/acos">std::acos</a>; <br  />
 acos(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_atan"></a> a.<a class="el" href="">atan</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a230744e17147d12e8ef3f2fc3796f64f">atan</a>(a);  </td><td>computes arc tangent ( \( \tan^{-1} a_i \)) </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/atan">std::atan</a>; <br  />
 atan(a[i]); </td><td></td></tr>
<tr>
<th colspan="4">Hyperbolic functions  </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_sinh"></a> a.<a class="el" href="">sinh</a>(); <br  />
 <a class="el" href="namespaceEigen.html#af284ce359b6efd4b594a9f8a1f5e5d96">sinh</a>(a);  </td><td>computes hyperbolic sine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/sinh">std::sinh</a>; <br  />
 sinh(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_cosh"></a> a.<a class="el" href="">cohs</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a34b99a26a2a1e7ff985a5ace16eedfcb">cosh</a>(a);  </td><td>computes hyperbolic cosine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/cosh">std::cosh</a>; <br  />
 cosh(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_tanh"></a> a.<a class="el" href="">tanh</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a0110c233d357169fd58fdf5656992a98">tanh</a>(a);  </td><td>computes hyperbolic tangent </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/tanh">std::tanh</a>; <br  />
 tanh(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_asinh"></a> a.<a class="el" href="">asinh</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a727dd851cc82a62574145bc5abdc7aed">asinh</a>(a);  </td><td>computes inverse hyperbolic sine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/asinh">std::asinh</a>; <br  />
 asinh(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_acosh"></a> a.<a class="el" href="">cohs</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a97676fabe9a7466cc2ccb6a2d0f83471">acosh</a>(a);  </td><td>computes hyperbolic cosine </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/acosh">std::acosh</a>; <br  />
 acosh(a[i]); </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_atanh"></a> a.<a class="el" href="">atanh</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a45d37a9f1c784eb8ab61ed24f07f436f">atanh</a>(a);  </td><td>computes hyperbolic tangent </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/atanh">std::atanh</a>; <br  />
 atanh(a[i]); </td><td></td></tr>
<tr>
<th colspan="4">Nearest integer floating point operations  </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_ceil"></a> a.<a class="el" href="">ceil</a>(); <br  />
 <a class="el" href="namespaceEigen.html#aa73e38be0689a463ae14141b9cf89c35">ceil</a>(a);  </td><td>nearest integer not less than the given value </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/ceil">std::ceil</a>; <br  />
 ceil(a[i]); </td><td>SSE4,AVX,ZVector (f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_floor"></a> a.<a class="el" href="">floor</a>(); <br  />
 <a class="el" href="namespaceEigen.html#abf03d773a87830bc7fde51bcd94c89a0">floor</a>(a);  </td><td>nearest integer not greater than the given value </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/floor">std::floor</a>; <br  />
 floor(a[i]); </td><td>SSE4,AVX,ZVector (f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_round"></a> a.<a class="el" href="">round</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ad9eaa98e8016ef17024a18a2f3e5bef3">round</a>(a);  </td><td>nearest integer, <br  />
 rounding away from zero in halfway cases </td><td>built-in generic implementation <br  />
 based on <code>floor</code> and <code>ceil</code>,<br  />
 plus <code>using</code> <a href="http://en.cppreference.com/w/cpp/numeric/math/round"><code>std::round</code> </a>; <span class="cpp11">[c++11]</span> </td><td>SSE4,AVX,ZVector (f,d)  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_rint"></a> a.<a class="el" href="">rint</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a0211fe61b9e390dfd8ca213fe9c7fca3">rint</a>(a);  </td><td>nearest integer, <br  />
 rounding to nearest even in halfway cases </td><td>built-in generic implementation using <a href="http://en.cppreference.com/w/cpp/numeric/math/rint"><code>std::rint</code> </a>; <span class="cpp11">[c++11]</span> or <a href="http://en.cppreference.com/w/c/numeric/math/rint"><code>rintf</code> </a>;  </td><td>SSE4,AVX (f,d)  </td></tr>
<tr>
<th colspan="4">Floating point manipulation functions  </th></tr>
<tr>
<th colspan="4">Classification and comparison  </th></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_isfinite"></a> a.<a class="el" href="">isFinite</a>(); <br  />
 <a class="el" href="namespaceEigen.html#aba24ec81dec745a00b7f33adead89811">isfinite</a>(a);  </td><td>checks if the given number has finite value </td><td>built-in generic implementation,<br  />
 plus <code>using</code> <a href="http://en.cppreference.com/w/cpp/numeric/math/isfinite"><code>std::isfinite</code> </a>; <span class="cpp11">[c++11]</span> </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_isinf"></a> a.<a class="el" href="">isInf</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a1f1103712e337c4c96a05f949637a4c8">isinf</a>(a);  </td><td>checks if the given number is infinite </td><td>built-in generic implementation,<br  />
 plus <code>using</code> <a href="http://en.cppreference.com/w/cpp/numeric/math/isinf"><code>std::isinf</code> </a>; <span class="cpp11">[c++11]</span> </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_isnan"></a> a.<a class="el" href="">isNaN</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a99adfc5178f3fd5488304284388b2a10">isnan</a>(a);  </td><td>checks if the given number is not a number </td><td>built-in generic implementation,<br  />
 plus <code>using</code> <a href="http://en.cppreference.com/w/cpp/numeric/math/isnan"><code>std::isnan</code> </a>; <span class="cpp11">[c++11]</span> </td><td></td></tr>
<tr>
<th colspan="4">Error and gamma functions  </th></tr>
<tr>
<td colspan="4">Require <code>#include</code> <code>&lt;unsupported/Eigen/SpecialFunctions&gt;</code>  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_erf"></a> a.<a class="el" href="">erf</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ac336e0eba2b12dca8b01da1a006566c3">erf</a>(a);  </td><td>error function </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/erf">std::erf</a>; <span class="cpp11">[c++11]</span> <br  />
 erf(a[i]);  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_erfc"></a> a.<a class="el" href="">erfc</a>(); <br  />
 <a class="el" href="namespaceEigen.html#a17bcfbd19ed883ecf581f06ac1eeeb8c">erfc</a>(a);  </td><td>complementary error function </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/erfc">std::erfc</a>; <span class="cpp11">[c++11]</span> <br  />
 erfc(a[i]);  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_lgamma"></a> a.<a class="el" href="">lgamma</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ac2e6331628bb1989b7be6d7e42827649">lgamma</a>(a);  </td><td>natural logarithm of the gamma function </td><td class="code">using <a href="http://en.cppreference.com/w/cpp/numeric/math/lgamma">std::lgamma</a>; <span class="cpp11">[c++11]</span> <br  />
 lgamma(a[i]);  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_digamma"></a> a.<a class="el" href="">digamma</a>(); <br  />
 <a class="el" href="namespaceEigen.html#af40db84b3db19fe25fe2f77c429420e5">digamma</a>(a);  </td><td><a href="https://en.wikipedia.org/wiki/Digamma_function">logarithmic derivative of the gamma function</a> </td><td>built-in for float and double  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_igamma"></a> <a class="el" href="">igamma</a>(a,x);  </td><td><a href="https://en.wikipedia.org/wiki/Incomplete_gamma_function">lower incomplete gamma integral</a> <br  />
 \( \gamma(a_i,x_i)= \frac{1}{|a_i|} \int_{0}^{x_i}e^{\text{-}t} t^{a_i-1} \mathrm{d} t \) </td><td>built-in for float and double,<br  />
 but requires <span class="cpp11">[c++11]</span>  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_igammac"></a> <a class="el" href="">igammac</a>(a,x);  </td><td><a href="https://en.wikipedia.org/wiki/Incomplete_gamma_function">upper incomplete gamma integral</a> <br  />
 \( \Gamma(a_i,x_i) = \frac{1}{|a_i|} \int_{x_i}^{\infty}e^{\text{-}t} t^{a_i-1} \mathrm{d} t \) </td><td>built-in for float and double,<br  />
 but requires <span class="cpp11">[c++11]</span>  </td><td></td></tr>
<tr>
<th colspan="4">Special functions  </th></tr>
<tr>
<td colspan="4">Require <code>#include</code> <code>&lt;unsupported/Eigen/SpecialFunctions&gt;</code>  </td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_polygamma"></a> <a class="el" href="">polygamma</a>(n,x);  </td><td><a href="https://en.wikipedia.org/wiki/Polygamma_function">n-th derivative of digamma at x</a> </td><td>built-in generic based on<br  />
 <a href="#cwisetable_lgamma"><code>lgamma</code> </a>, <a href="#cwisetable_digamma"><code>digamma</code> </a> and <a href="#cwisetable_zeta"><code>zeta</code> </a>.  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_betainc"></a> <a class="el" href="">betainc</a>(a,b,x);  </td><td><a href="https://en.wikipedia.org/wiki/Beta_function#Incomplete_beta_function">Incomplete beta function</a> </td><td>built-in for float and double,<br  />
 but requires <span class="cpp11">[c++11]</span>  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_zeta"></a> <a class="el" href="">zeta</a>(a,b); <br  />
 a.<a class="el" href="">zeta</a>(b);  </td><td><a href="https://en.wikipedia.org/wiki/Hurwitz_zeta_function">Hurwitz zeta function</a> <br  />
 \( \zeta(a_i,b_i)=\sum_{k=0}^{\infty}(b_i+k)^{\text{-}a_i} \) </td><td>built-in for float and double  </td><td></td></tr>
<tr>
<td class="code"><a class="anchor" id="cwisetable_ndtri"></a> a.<a class="el" href="">ndtri</a>(); <br  />
 <a class="el" href="namespaceEigen.html#ab7ed113a2dd4a4342c72b550faea308d">ndtri</a>(a);  </td><td><a class="el" href="classEigen_1_1Inverse.html" title="Expression of the inverse of another expression.">Inverse</a> of the CDF of the Normal distribution function </td><td>built-in for float and double  </td><td></td></tr>
<tr>
<td colspan="4"></td></tr>
</table>
<p><br  />
</p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:55 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
